package com.kujie.access.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.kujie.access.domain.query.PolicySubmitInformationQuery;
import com.kujie.access.domain.vo.PolicySubmitInformationExportImportVO;
import com.kujie.access.domain.vo.PolicySubmitInformationVO;
import com.kujie.common.core.domain.R;
import com.kujie.common.mybatis.core.page.PageQuery;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.List;

/**
 * 政策申报 service
 *
 * @author check
 * @date 2025-07-03
 */
public interface IPolicySubmitInformationService {
    /**
     * 查询列表
     *
     * @param policySubmitInformationQuery 查询参数
     * @param pageQuery                    分页参数
     * @return 列表
     */
    Page<PolicySubmitInformationVO> list(PolicySubmitInformationQuery policySubmitInformationQuery, PageQuery pageQuery);

    /**
     * 详情
     *
     * @param companyUUID 企业uuid
     * @return 详情
     */
    R<PolicySubmitInformationVO> detail(String companyUUID);

    /**
     * 新增或修改
     *
     * @param policySubmitInformationVO 详情
     * @return 是否成功
     */
    int insertOrUpdate(PolicySubmitInformationVO policySubmitInformationVO);

    /**
     * 批量删除
     *
     * @param ids id列表
     * @return 是否成功
     */
    int batchDelete(List<String> ids);

    /**
     * 批量导出
     *
     * @param policySubmitInformationQuery 查询参数
     * @param response                     响应
     * @return 是否成功
     */
    List<PolicySubmitInformationExportImportVO> batchExport(PolicySubmitInformationQuery policySubmitInformationQuery, HttpServletResponse response);

    /**
     * 批量导入
     *
     * @param file 文件
     * @return 是否成功
     */
    int batchImport(MultipartFile file) throws IOException;
}
